Click Here!
home account info subscribe login search My ITKnowledge FAQ/help site map contact us


 
Brief Full
 Advanced
      Search
 Search Tips
To access the contents, click the chapter and section titles.

Oracle Performance Tuning and Optimization
(Publisher: Macmillan Computer Publishing)
Author(s): Edward Whalen
ISBN: 067230886x
Publication Date: 04/01/96

Bookmark It

Search this book:
 
Previous Table of Contents Next


Array Controller Caches

Many disk arrays on the market today offer a large controller cache. This cache can help in several ways:

  Cache hits. If the data being accessed is frequently written and read, you may see some benefits from a hit in the controller cache.
  Fault tolerance. The write-caching of the data hides the effects of fault tolerance. Fault tolerance incurs a certain amount of overhead, as described in “RAID Technology,” later in this chapter. The write-cache can compensate for this overhead.
  Disk queuing and sorting. By queuing the I/O requests on the controller rather than in the OS, the I/O requests can be sorted based on the disk on which the data is located.

Write Caches

Write caches are designed to cache the writes written to the controller and to post the I/O request to the disk driver. Posting the request means that the device driver believes that the I/O is completed. Posting the write allows the overhead associated with queuing the request and writing it to the individual disk to be masked. All the OS and the RDBMS see is an incredibly fast write.


CAUTION:  Unless the write cache is protected, it is not usually recommended that write-caching be enabled on the redo log volume. If the RDBMS believes a write to have occurred to the redo log and a controller failure occurs before that data has been written to the disk drives, you may not be able to recover the instance.

Some disk array controllers like the Compaq SMART array have incorporated both mirroring and a battery backup into the write cache to ensure that the data is protected even in the event of a power outage. Use your own judgment about running a write cache on the redo log volumes.

Read/Write Caches

Controller read/write caches are similar to write caches (described in the preceding section) with the exception that during a read, the controller checks the cache first. If the data is in the cache, the data is returned immediately; if not, the request goes to disk. Although reading from cache may help in some situations, it is usually not a great advantage in an RDBMS environment because you already have an enormous read cache: the database block buffers. The chance is very small that an I/O written to the disk controller is in the read cache on that controller but is not in the SGA.

Because you already have a highly optimized cache (SGA) in an RDBMS, it is unlikely that there will be a request to read data that has just been written. The chances are small that this data is in the disk cache but not in the SGA.

However, you will reap the benefits of the write cache if you use fault-tolerant functions. The controller can mask the effects of extra I/Os that may be involved in your fault tolerant method.

RAID Technology

The configuration of disks in an array is sometimes called a Redundant Array of Inexpensive Disks (RAID) configuration. RAID technology has allowed systems to maintain very large amounts of storage at relatively low cost. SCSI drives have not only improved in performance and quality over the years, they have significantly dropped in price.

The term RAID is also used to describe the type of striping you use. Striping methods vary in both performance and space overhead. The type of configuration used in your system depends on your individual needs. Different configurations of striping and fault-tolerant striping are identified by RAID levels.

Although you may see various RAID levels advertised by hardware manufacturers, there are really standards for only RAID levels 0 through 5 at this time. And because these standards are based on general concepts and are implementation specific, different implementations of RAID-5 (for example) may use different algorithms. The six RAID levels are described next.

RAID-0

RAID-0 is the base RAID level and is used to describe disk striping with no fault tolerance. RAID-0 drives simply have data striped over all the drives (see Figure 15.2).


Figure 15.2  RAID level 0 has no fault tolerance.

RAID-0 is the highest performing and most economical of the RAID levels. The amount of data in the logical volume is equal to the sum of the amount of data on each disk drive. RAID level 0 causes no additional I/Os to be generated on behalf of the fault tolerant method.

The downside of RAID-0 is that if a disk were to fail, the entire volume becomes invalid. Because the data in the logical volume is striped across all the disks, a loss of a single disk causes a loss of data throughout the logical volume. If a 14-disk volume were to fail, you must restore the data for all 14 disk drives. There is no way to back up and restore data for a single drive in a disk array.

If you are looking for the highest performance and the best value possible—and are not worried about fault tolerance—this is the RAID level you should use.

RAID-1

The RAID-1 level is also known as disk mirroring. In RAID-1, all the data stored on a disk drive is duplicated on another disk in the array. Each time a write occurs to the logical disk, the data must be written to both physical disks before the logical write is considered completed. With disk mirroring, a single disk is mirrored to another disk; these disks can also be striped with other disks to form a larger logical volume (see Figure 15.3).


Figure 15.3  RAID level 1 is also called disk mirroring.

Because the mirroring is on a one-to-one basis, you can actually lose half the disks in your system (depending on which disks they are) and still be operational. With most disk array controllers, you can split the mirror across SCSI busses. This arrangement allows for the failure of an entire SCSI bus (for example, a cabinet failure) without affecting operation.

With disk mirroring, you can use only half the disks in the system (the other half are used for the mirrors). In other words, if you use disk mirroring with two 2.1 gigabyte disks, you can use only 2.1 gigabytes of space. When writing, you get the benefit of only one disk in terms of performance because a logical write invokes two physical writes.

You may see a benefit from reading from a mirrored drive. Some disk array controllers support split-reads, in which reads can occur simultaneously on different mirrored drives to different data. The disk with the heads closest to the requested data retrieves the data. Depending on the data access methods, this feature may or may not provide any benefits.

If you can afford the cost of disk mirroring, RAID-1 is the best choice when fault tolerance is required. With disk mirroring, you achieve the highest level of protection as well as the fastest disk access possible for a fault-tolerant volume.


Previous Table of Contents Next


Products |  Contact Us |  About Us |  Privacy  |  Ad Info  |  Home

Use of this site is subject to certain Terms & Conditions, Copyright © 1996-2000 EarthWeb Inc.
All rights reserved. Reproduction whole or in part in any form or medium without express written permission of EarthWeb is prohibited.